package com.leetcodehot.problems;

import java.util.Arrays;

public class problems2779 {
    /**
     * 发现规律，可以对其排序再做运算，和顺序无关
     * 另外就是 比如k=2， 序列是2 4 6
     * 那2和6都可以往4上面凑，但是再远就不行了
     * 所以最终原问题转化为 排序后，宽度为2k的连续长度最大值，转化为滑动窗口问题
     */

    public int maximumBeauty(int[] nums, int k) {
        int n = nums.length;
        int left = 0;
        int res = 0;
        Arrays.sort(nums);
        for (int right = 0; right < n; right++) {
            while (nums[right] - nums[left] > 2 * k) {
                left++;
            }
            res = Math.max(res, right - left + 1);
        }
        return res;
    }
}
